RequestsScheduler deduplicates HandleChainInfo queries. #4911
+1,022
−10
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation
During app setup, client sends over 100
HandleChainInfoqueries. This happens b/c per-validator, per-chain tasks are independent and may need this information concurrently (and independently) - often asking for the same data (or subset of it) from the same validator.Proposal
Extend
RequestsSchedulerto allow forHandleChainInfoqueries deduplication, similarly to other download requests.This PR adds necessary logic for:
HandleChainInfoqueries, if second requests subset of information of the first one, it can wait for the response rather than requesting it again).A batter of unit tests was added to showcase that extraction logic works properly. Some property-based tests were added to verify that
subsumptionlogic works.Current testnet:


This branch:
Test Plan
CI.
Release Plan
testnetbranch, thenLinks